{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ML2 Übung 3 - CNNs mit TensorFlow" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In dieser Übung steht der MNIST Datensatz im Mittelpunkt. Dieser Datensatz enhält eine Klassifikationsaufgabe mit Bildern handschriftlicher Ziffern. Zunächst wird ein einfacher Klassifikator auf dem Datensatz trainiert und evaluiert. Im weiteren Verlauf wird dann ein einfaches CNN zur Klassifikation verwendet." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MNIST Klassifikation mit linearer Regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Zunächst werden wie üblich die benötigten Pakete eingebunden." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import tensorflow as tf\n", "import numpy as np\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Anschließend werden die MNIST Daten importiert. Bei der ersten Ausführung des nachfolgenden Codes wird der Datensatz aus dem Internet heruntergeladen." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.\n", "Extracting MNIST_data/train-images-idx3-ubyte.gz\n", "Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.\n", "Extracting MNIST_data/train-labels-idx1-ubyte.gz\n", "Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.\n", "Extracting MNIST_data/t10k-images-idx3-ubyte.gz\n", "Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.\n", "Extracting MNIST_data/t10k-labels-idx1-ubyte.gz\n" ] } ], "source": [ "# MNIST dataset can be automatically downloaded from within TensorFlow\n", "from tensorflow.examples.tutorials.mnist import input_data\n", "mnist = input_data.read_data_sets('MNIST_data', one_hot=True) # labels are encoded as one-hot!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Der MNIST Datensatz besteht aus Trainings-, Validierungs- und Testdaten: " ] }, { "cell_type": "code", "execution_count": 102, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train Set Shape: (55000, 784)\n", "Validation Set Shape: (5000, 784)\n", "Test Set Shape: (10000, 784)\n" ] } ], "source": [ "print(\"Train Set Shape: \" + str(np.shape(mnist.train.images)))\n", "print(\"Validation Set Shape: \" + str(np.shape(mnist.validation.images)))\n", "print(\"Test Set Shape: \" + str(np.shape(mnist.test.images)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wie sehen die Daten von MNIST eigentlich aus? \n", "\n", "Hier einige Beispiele aus dem Trainingsdatensatz:" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nXNMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "img0 = mnist.train.images[0].reshape([28,28])\n", "img1 = mnist.train.images[1].reshape([28,28])\n", "img2 = mnist.train.images[2].reshape([28,28])\n", "img3 = mnist.train.images[3].reshape([28,28])\n", "img4 = mnist.train.images[4].reshape([28,28])\n", "plt.imshow(np.concatenate((img0, img1, img2, img3, img4), axis=1))\n", "plt.gray()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Zu den Daten existieren natürlich auch die entsprechenden Labels. Hier die Labels zu den dargestellten Beispielbildern aus dem Trainingsdatensatz:" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train Labels: \n", "[[ 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]\n", " [ 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n", " [ 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]\n", " [ 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]]\n" ] } ], "source": [ "print(\"Train Labels: \\n\" + str(mnist.train.labels[0:5]))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Analog zu Übung 2: Definition des Tensorflow Graphen: " ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define placeholders for input data and labels (with arbitrary batch size)\n", "x = tf.placeholder(tf.float32, shape=[None, 784], name='x') # input as vector of size 28*28 = 784\n", "y = tf.placeholder(tf.float32, shape=[None, 10], name='y') # labels as numbers 0 - 9\n", "\n", "# Define variables for the graph and initialize them\n", "W = tf.Variable(tf.zeros([784,10]))\n", "b = tf.Variable(tf.zeros([10]))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In diesem Fall wird ein Softmax Loss verwendet:" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": true }, "outputs": [], "source": [ "with tf.name_scope('Loss') as scope:\n", " y_pred = tf.matmul(x, W) + b\n", " softmax = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=y_pred))" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": true }, "outputs": [], "source": [ "learning_rate = 0.05\n", "with tf.name_scope('optimizer') as scope:\n", " optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(softmax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nachdem der Graph definiert wurde, kann nun das Training gestartet werden. Im Gegensatz zu Übung 2 wird an dieser Stelle nicht mehr der gesamte Datensatz in jedem Trainingsschritt verwendet. Pro Schritt wird lediglich ein kleiner Teil der Daten verwendet (auch batch oder min-batch genannt). Im MNIST Beispiel von Tensorflow wird bereits eine Funktion zur Verfügung gestellt, die aus den Trainingsdaten in jedem Trainingsschritt eine definierte Anzahl Bilder bereitstellt." ] }, { "cell_type": "code", "execution_count": 113, "metadata": { "collapsed": true }, "outputs": [], "source": [ "steps = 2000\n", "batch_size = 100\n", "init = tf.global_variables_initializer()\n", "\n", "with tf.Session() as sess:\n", " init.run()\n", " for _ in range(steps):\n", " batch = mnist.train.next_batch(batch_size)\n", " optimizer.run(feed_dict={x: batch[0], y: batch[1]})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nachdem der Klassifikator trainiert wurde, kann er nun auf die Testdaten angewandt werden:" ] }, { "cell_type": "code", "execution_count": 115, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[False False False ..., False False False]\n", "Genauigkeit: 0.098\n" ] } ], "source": [ "with tf.Session() as sess:\n", " init.run()\n", " # Define test data to be fed into graph\n", " test_data = { x: mnist.test.images, y: mnist.test.labels }\n", "\n", " prediction = tf.argmax(y_pred, 1)\n", " label = tf.argmax(y, 1)\n", "\n", " # Calculate whether a prediction is correct or not\n", " correct_prediction = tf.equal(prediction, label)\n", " print(correct_prediction.eval(feed_dict=test_data))\n", " \n", " accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", " print(\"Klassifikationsrate: \" + str(accuracy.eval(feed_dict=test_data)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dies entspricht nicht ganz dem erwarteten Ergebnis. Weshalb wird hier ein so schlechtes Ergebnis erreicht? Nachfolgend werden Training und Test des Modells gemeinsam durchgeführt:" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ True True True ..., True True True]\n", "Genauigkeit: 0.9094\n" ] } ], "source": [ "steps = 2000\n", "batch_size = 100\n", "init = tf.global_variables_initializer()\n", "\n", "with tf.Session() as sess:\n", " init.run()\n", " for _ in range(steps):\n", " batch = mnist.train.next_batch(batch_size)\n", " optimizer.run(feed_dict={x: batch[0], y: batch[1]})\n", " \n", " # Define test data to be fed into graph\n", " test_data = { x: mnist.test.images, y: mnist.test.labels }\n", "\n", " prediction = tf.argmax(y_pred, 1)\n", " label = tf.argmax(y, 1)\n", "\n", " # Calculate whether a prediction is correct or not\n", " correct_prediction = tf.equal(prediction, label)\n", " print(correct_prediction.eval(feed_dict=test_data))\n", " \n", " accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", " print(\"Klassifikationsrate: \" + str(accuracy.eval(feed_dict=test_data)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hier wird nun ein deutlich besseres Ergebnis erreicht. Im ersten Durchlauf wurde nicht bedacht, dass das trainierte Modell nach Ende der Session verworfen wird. Bei Erstellung der Evaluationssession werden die Gewichte des Modells neu initialisiert und die Evaluation darauf durchgeführt.\n", "\n", "Um dies zu verhindern sollte das Modell nach dem Training vor dem Beenden der Session gespeichert werden. Zur Evaluation kann es dann innerhalb der Evaluationssession wieder geladen werden. Somit sind Training und Evaluation zeitlich entkoppelt und das Modell verbleibt zur späteren Verwendung gespeichert." ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "collapsed": true }, "outputs": [], "source": [ "steps = 2000\n", "batch_size = 100\n", "init = tf.global_variables_initializer()\n", "saver = tf.train.Saver()\n", "\n", "with tf.Session() as sess:\n", " init.run()\n", " for _ in range(steps):\n", " batch = mnist.train.next_batch(batch_size)\n", " optimizer.run(feed_dict={x: batch[0], y: batch[1]})\n", " saver.save(sess, \"/tmp/model.ckpt\")" ] }, { "cell_type": "code", "execution_count": 119, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ True True True ..., True True True]\n", "Genauigkeit: 0.9106\n" ] } ], "source": [ "with tf.Session() as sess:\n", " saver.restore(sess, \"/tmp/model.ckpt\")\n", " # Define test data to be fed into graph\n", " test_data = { x: mnist.test.images, y: mnist.test.labels }\n", "\n", " prediction = tf.argmax(y_pred, 1)\n", " label = tf.argmax(y, 1)\n", "\n", " # Calculate whether a prediction is correct or not\n", " correct_prediction = tf.equal(prediction, label)\n", " print(correct_prediction.eval(feed_dict=test_data))\n", " \n", " accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", " print(\"Klassifikationsrate: \" + str(accuracy.eval(feed_dict=test_data)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Das Modell kann nun auch zur Klassifikation einzelner Eingabebilder genutzt werden. Nachfolgend wir ein zufälliges Bild aus dem MNIST Testdatensatz ausgewählt und angezeigt:" ] }, { "cell_type": "code", "execution_count": 125, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nM4SuTEkGA3wAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "img = random.choice(mnist.test.images)\n", "plt.imshow(img.reshape([28,28]))\n", "plt.gray()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Auf dieses Bild kann nun der Klassifikator angewandt werden. Mit folgendem Code wird zunächst das gelernte Modell geladen und danach auf das Bild angewendet. Die resultierende Verteilund und somit die vorhergesagte Klasse kann beispielsweise in einem Balkendiagramm ausgegeben werden:" ] }, { "cell_type": "code", "execution_count": 126, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "with tf.Session() as sess:\n", " saver.restore(sess, \"/tmp/model.ckpt\")\n", " plt.bar(range(10), y_pred.eval(feed_dict={x: [img] })[0])\n", " plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interactive Sessions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Falls all diese Schritte in einer Umgebung wie den Jupyter Notebooks ausgeführt werden, existiert in Tensorflow auch eine interaktive Session. Hiermit wird zu Beginn eine Session definiert und für den weiteren Verlauf als Standard-Session verwendet. Ein Speichern und Laden von Modellen ist so nicht mehr nötig: " ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sess = tf.InteractiveSession()" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tf.global_variables_initializer().run()" ] }, { "cell_type": "code", "execution_count": 133, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sess.run(tf.global_variables_initializer())" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "collapsed": true }, "outputs": [], "source": [ "steps = 20000\n", "batch_size = 100\n", "\n", "for i in range(steps):\n", " batch = mnist.train.next_batch(batch_size)\n", " sess.run(optimizer, feed_dict={x: batch[0], y: batch[1]})" ] }, { "cell_type": "code", "execution_count": 138, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ True True True ..., True True True]\n", "Klassifikationsrate: 0.9227\n" ] } ], "source": [ "# Define test data to be fed into graph\n", "test_data = { x: mnist.test.images, y: mnist.test.labels }\n", "\n", "prediction = tf.argmax(y_pred, 1)\n", "label = tf.argmax(y, 1)\n", "\n", "# Calculate whether a prediction is correct or not\n", "correct_prediction = tf.equal(prediction, label)\n", "print(correct_prediction.eval(feed_dict=test_data))\n", "\n", "accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", "print(\"Klassifikationsrate: \" + str(accuracy.eval(feed_dict=test_data)))" ] }, { "cell_type": "code", "execution_count": 140, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n/9QO2i0aYYWvAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "img = random.choice(mnist.test.images)\n", "plt.imshow(img.reshape([28,28]))\n", "plt.gray()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 139, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.9227\n" ] } ], "source": [ "# Determine fraction of correct predictions given the true label\n", "accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", "print accuracy.eval(feed_dict=test_data)" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nA0AyhB0Akvk/pLpM+W6sbFQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.bar(range(10), y_pred.eval(feed_dict={x: [img] })[0])\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nach Ende der Verwendung sollte auch die interaktive Session wieder geschlossen werden:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.64392018 2.81098771 14.22045708 7.95471954 -14.39821625\n", " 1.78300774 5.14748096 -11.35773945 2.39862823 -9.20321465]]\n" ] } ], "source": [ "print(y_pred.eval(feed_dict={x: [img]}))" ] }, { "cell_type": "code", "execution_count": 142, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sess.close()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MNIST Klassifikation mit CNNs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Zunächst sollte die Umgebung aufgeräumt werden:" ] }, { "cell_type": "code", "execution_count": 143, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tf.reset_default_graph()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Danach wird eine neue interaktive Session gestartet:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sess = tf.InteractiveSession()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nun wird der TensorFlow Graph mit mit der CNN Architektur erstellt:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define placeholders for input data and labels (with arbitrary batch size)\n", "x = tf.placeholder(tf.float32, shape=[None, 784]) # input as vector of size 28*28 = 784\n", "y = tf.placeholder(tf.float32, shape=[None, 10]) # labels as numbers 0 - 9" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define functions to create layers\n", "def conv2d(x, W):\n", " return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')\n", "\n", "def max_pool_2x2(x):\n", " return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],\n", " strides=[1, 2, 2, 1], padding='SAME')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Eingabeschicht:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Transform MNIST images to 4-dimensional tensor:\n", "#[MiniBatch, x, y, color_channels]\n", "x_image = tf.reshape(x, [-1,28,28,1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Erste Schicht: Convolution (32 Filter der Größe 5x5):" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Filter size: 5x5, color channels: 1, number of filters: 32\n", "W_conv1 = tf.Variable(tf.truncated_normal(shape=[5, 5, 1, 32], stddev=0.1))\n", "b_conv1 = tf.Variable(tf.constant(0.1, shape=[32]))\n", "\n", "h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Zweite Schicht: MaxPooling (2x2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "h_pool1 = max_pool_2x2(h_conv1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Dritte Schicht: Convolution (64 Filter der Größe 5x5):" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Filter size: 5x5, input size: 32, number of filters: 64\n", "W_conv2 = tf.Variable(tf.truncated_normal(shape=[5, 5, 32, 64], stddev=0.1))\n", "b_conv2 = tf.Variable(tf.constant(0.1, shape=[64]))\n", "\n", "h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Vierte Schicht: MaxPooling (2x2)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "h_pool2 = max_pool_2x2(h_conv2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nachfolgend zwei Fully Connected Layer (3136 und 1024 Neuronen):" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Fully connected layer\n", "W_fc1 = tf.Variable(tf.truncated_normal(shape=[7 * 7 * 64, 1024], stddev=0.1))\n", "b_fc1 = tf.Variable(tf.constant(0.1, shape=[1024]))\n", "\n", "h_pool2_flat = tf.reshape(h_pool2, [-1, 7*7*64])\n", "h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Add classification layer at the end\n", "W_fc2 = tf.Variable(tf.truncated_normal(shape=[1024, 10], stddev=0.1))\n", "b_fc2 = tf.Variable(tf.constant(0.1, shape=[10]))\n", "\n", "y_conv = tf.matmul(h_fc1, W_fc2) + b_fc2\n", "\n", "# Use softmax loss (just as before!)\n", "softmax = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=y_conv))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Training" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Zum Trainieren des Netzes wird an dieser Stelle der Adam Optimizer verwendet. Gradient Descent würde an dieser Stelle auch funktionieren. In den letzten Jahren hat sich allerdings gezeigt, dass Adam bei größeren Netzen schneller bessere Ergebnisse erreicht." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "learning_rate = 0.0001\n", "steps = 100\n", "\n", "adam_optimizer = tf.train.AdamOptimizer(learning_rate).minimize(softmax)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ist das Netz definiert, kann das Training gestartet werden. Hierbei ist zu Beachten, dass das Netz bereits eine gewisse Größe erreicht hat. Deshalb muss mit einer deutlich längeren Trainingslaufzeit als bei den bisher ausgeführten Trainings gerechnet werden. An diesem Punkt stellt sich zum ersten Mal die Frage, ob nicht eine Auslagerung des Trainings auf eine Grafikkarte sinnvoll wäre. Hierzu müsste lediglich die gpu Version von Tensorflow im Virtualenv installiert werden." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "step 0, training accuracy 0.12\n" ] } ], "source": [ "batch_size = 50\n", "\n", "# Calculate whether a prediction is correct or not\n", "# This time we can include it in the training loop to check progress \n", "# during training on training data.\n", "correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y,1))\n", "accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))\n", "\n", "tf.global_variables_initializer().run()\n", "\n", "for i in range(steps):\n", " batch = mnist.train.next_batch(batch_size)\n", " if i%100 == 0:\n", " train_accuracy = accuracy.eval(feed_dict={\n", " x:batch[0], y: batch[1]})\n", " print(\"step %d, training accuracy %g\"%(i, train_accuracy))\n", " #Aufgabe:\n", " #Ergänzen sie an dieser Stelle den zentralen Befehl zum Training des Netzes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Evaluation" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Klassifikationsrate 0.1021\n" ] } ], "source": [ "print(\"Klassifikationsrate %g\" % accuracy.eval(feed_dict={x: mnist.test.images, y: mnist.test.labels}))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Klassifikation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nachfolgend soll wieder ein zufälliges Bild aus dem Trainingsdatensatz gewählt werden." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import random\n", "img = random.choice(mnist.test.images)\n", "plt.imshow(img.reshape([28,28]))\n", "plt.gray()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Auf dieses Bild kann nun das trainierte Modell angewandt werden. Die Ausgabe des Netzes werden anschließend in Form eines Balkendiagrammes ausgegeben." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.bar(range(10), y_conv.eval(feed_dict={x: [img] })[0])\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 2 }